javascript deep dive 객체 리터럴 (10) JS에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 함수도 프로퍼티 값으로 사용할 수 있는데, 이런 경우 일반 함수와 구분하기 위해 메소드(method)라 부른다. 프로퍼티: 객체의 상태를 나타내는 값(data) 메소드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior) 프로퍼티(속성) 프로퍼티 키: 빈 문자열을 포함하는 모든 문자열 또는 심벌 값 프로퍼티... javascript deep divejavascript deep dive 스코프 (13) 변수는 코드의 가장 바깥 영역 뿐 아니라 코드 블록이나 함수 몸체 내에서도 선언할 수 있다. 변수를 참조할 때 JS 엔진은 스코프 체인을 통해 변수를 참조하는 코드의 스코프에서 시작하여 상위 스코프 방향으로 이동하며 선언된 변수를 검색한다. 함수 레벨 스코프 C나 Java등을 비롯한 대부분의 프로그래밍 언어는 함수 몸체만이 아니라 모든 코드 블록(if, for while, try/catch ... scopejavascript deep divejavascript deep dive mode - 20 strict mode란? 그러나 JS 엔진이 전역 스코프까지 탐색했을 때, 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성한다. 이 때, 전역 객체의 x 프로퍼티는 마치 전역 변수처럼 사용할 수 있다. 이러한 현상을 '암묵적 전역' 이라 한다. 따라서 var, let, const로 선언을 하고 사용하자. 하지만 이런 오타나 문법 지식의 미비로 인한 실수는 언제든지 발생할 수 있다. 따라서 이... javascript deep divejavascript deep dive 원시 값과 객체의 비교 (11) 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다. 원시 값은 불변하다 라고 했는데, 그렇다면 값을 변경할 수 없다는 것은 무엇을 의미할까? 변수는 언제든지 재할당을 통해 변수 값을 변경(엄밀히 말하자면 교체)할 수 있다. 불변성을 갖는 원시 값을 할당한 변수는 재할당 이외에 변수 값을... javascript deep divejavascript deep dive his - 22 객체 리터럴 방식으로 생성된 객체의 경우 메서드 내부에서 메서드 자신이 속한 객체를 가리키는 식별자를 재귀적으로 참조할 수 있다. 생성자 함수 내부의 this는 생성자 함수가 생성할 인스턴스를 가리킨다. 하지만 this는 객체의 프로퍼티나 메서드를 참조하기 위한 자기 참조 변수이므로 일반적으로 객체의 메서드 내부 또는 생성자 함수 내부에서만 의미가 있다. 위 코드처럼 전역함수는 물론이고 중첩... thisjavascript deep divejavascript deep dive
객체 리터럴 (10) JS에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 함수도 프로퍼티 값으로 사용할 수 있는데, 이런 경우 일반 함수와 구분하기 위해 메소드(method)라 부른다. 프로퍼티: 객체의 상태를 나타내는 값(data) 메소드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior) 프로퍼티(속성) 프로퍼티 키: 빈 문자열을 포함하는 모든 문자열 또는 심벌 값 프로퍼티... javascript deep divejavascript deep dive 스코프 (13) 변수는 코드의 가장 바깥 영역 뿐 아니라 코드 블록이나 함수 몸체 내에서도 선언할 수 있다. 변수를 참조할 때 JS 엔진은 스코프 체인을 통해 변수를 참조하는 코드의 스코프에서 시작하여 상위 스코프 방향으로 이동하며 선언된 변수를 검색한다. 함수 레벨 스코프 C나 Java등을 비롯한 대부분의 프로그래밍 언어는 함수 몸체만이 아니라 모든 코드 블록(if, for while, try/catch ... scopejavascript deep divejavascript deep dive mode - 20 strict mode란? 그러나 JS 엔진이 전역 스코프까지 탐색했을 때, 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성한다. 이 때, 전역 객체의 x 프로퍼티는 마치 전역 변수처럼 사용할 수 있다. 이러한 현상을 '암묵적 전역' 이라 한다. 따라서 var, let, const로 선언을 하고 사용하자. 하지만 이런 오타나 문법 지식의 미비로 인한 실수는 언제든지 발생할 수 있다. 따라서 이... javascript deep divejavascript deep dive 원시 값과 객체의 비교 (11) 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다. 원시 값은 불변하다 라고 했는데, 그렇다면 값을 변경할 수 없다는 것은 무엇을 의미할까? 변수는 언제든지 재할당을 통해 변수 값을 변경(엄밀히 말하자면 교체)할 수 있다. 불변성을 갖는 원시 값을 할당한 변수는 재할당 이외에 변수 값을... javascript deep divejavascript deep dive his - 22 객체 리터럴 방식으로 생성된 객체의 경우 메서드 내부에서 메서드 자신이 속한 객체를 가리키는 식별자를 재귀적으로 참조할 수 있다. 생성자 함수 내부의 this는 생성자 함수가 생성할 인스턴스를 가리킨다. 하지만 this는 객체의 프로퍼티나 메서드를 참조하기 위한 자기 참조 변수이므로 일반적으로 객체의 메서드 내부 또는 생성자 함수 내부에서만 의미가 있다. 위 코드처럼 전역함수는 물론이고 중첩... thisjavascript deep divejavascript deep dive